package com.quyunshuo.edwingoal.app

import android.app.Activity
import android.util.Log
import com.quyunshuo.edwingoal.base.BaseApplication
import com.quyunshuo.edwingoal.base.mvvm.v.LanguageManager
import com.quyunshuo.edwingoal.base.mvvm.v.PrefsManager
import com.quyunshuo.module.home.dialog.AppManager
import com.scwang.smart.refresh.footer.ClassicsFooter
import com.scwang.smart.refresh.header.ClassicsHeader
import com.scwang.smart.refresh.layout.SmartRefreshLayout
import dagger.hilt.android.HiltAndroidApp
import org.greenrobot.eventbus.EventBus

/**
 * App壳
 *
 * @author Qu Yunshuo
 * @since 4/23/21 6:08 PM
 */
@HiltAndroidApp
class AppApplication : BaseApplication() {

    override fun onCreate() {
        // 开启EventBusAPT,优化反射效率 当组件作为App运行时需要将添加的Index注释掉 因为找不到对应的类了
        EventBus
            .builder()
//            .addIndex(MainEventIndex())
            .installDefaultEventBus()
        AppManager.init(this)

        //todo 注册APP前后台切换监听 很有用的功能，可以展示广告。
        appFrontBackRegister()

        //设置全局的Header构建器
        SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, layout ->
            layout.setPrimaryColorsId(android.R.color.white)
//            CustomRefreshHeader(context)
            ClassicsHeader(context)
        }
        //设置全局的Footer构建器
        SmartRefreshLayout.setDefaultRefreshFooterCreator { context, layout ->
            layout.setPrimaryColorsId(android.R.color.white)
            //指定为经典Footer，默认是 BallPulseFooter
            ClassicsFooter(context)
        }
        PrefsManager.initialize(this)

        // 初始化语言管理器并应用用户选择的语言
        LanguageManager.initialize(this)
        super.onCreate()
    }

    /**
     * 注册APP前后台切换监听
     */
    private fun appFrontBackRegister() {
        AppFrontBack.register(this, object : AppFrontBackListener {
            override fun onBack(activity: Activity?) {
            }

            override fun onFront(activity: Activity?) {
            }
        })
    }
}